Field of the Invention
The present invention relates to an information processing apparatus, a control method, and a storage medium, and particularly to a 3D scene rendering technique.
Description of the Related Art
3D graphics are used as a visualization expression method in various fields and are not limited to game, movies, or the like. In such 3D graphics fields, in recent years, various approaches to approximating more realistic depiction or more high quality rendering expression have been proposed.
One approach for causing the realism of 3D graphics to improve is a Global Illumination approach in which an illumination in which light emitted from a light source reflects a plurality of times and diffuses, such as in an indirect illumination, is caused to be reflected. By such an approach, it is possible to provide a rendering expression that has a greater realism by rendering shadows for one rendering object by not only rendering shadows that occur directly due to defined illumination (a light source) but also by considering indirect illumination that appears due to the light source being reflected by another rendering object.
There are various approaches for analyzing influences of Global Illumination, but in recent years, an approach for performing an analysis by using a GPU for which concurrent calculation capabilities are superior has been proposed. In a ray-bundle tracing approach, an incident radiance is obtained by defining a collection of parallel rays (ray-bundle) by selecting a sampling direction in relation to a 3D scene which is an analysis target, and analyzing reflections between rendering objects lined up in a depth direction on each ray. Here, because there are cases in which a plurality of rendering objects exist on a ray, there are cases in which a plurality of fragments exist for a single ray, and inter-reflections in a plurality of sections defined by consecutive fragments are analyzed. In Yusuke Tokuyoshi et al, “Fast Global Illumination Baking via Ray-Bundles”, SIGGRAPH Asia 2011 Technical Sketches, each section on a ray is associated using a linked-list in order to consider the sections defined by the fragments existing on this kind of single ray.
Note, it is possible to use a linked-list as is used in “Fast Global Illumination Baking via Ray-Bundles” for OIT (Order-Independent Transparency). OIT is a 3D graphics rendering approach in which it is possible to realize an alpha-blending representation irrespective of an alpha-blending representation rendering order, i.e. without performing rendering in order in a viewpoint direction from a deepest object rendered in the alpha-blending representation. In such a case, the fragments existing on the respective straight line that extends in a direction from the viewpoint for each pixel of a two-dimensional image rendered for the viewpoint can be configured as a linked-list for each pixel.
However, in a case where a linked-list is used in this way there are pieces of information whose number is greater than or equal to the total pixel count because a plurality of fragments are included in a single pixel of a map of an analysis target or an image that is rendered. In other words, in a case where a summation of a number of fragments is large, there is a possibility that it will not be possible to contain all of the information of the processing target within a limited memory region that is used for the processing. In response to this, an approach of dividing a region of a two-dimensional image to be rendered into grid shaped tiles having uniform size, and performing rendering processing on each of the divided tiles (tiling) is disclosed in Nicolas Thibieroz, “Order-Independent Transparency using Per-Pixel Linked Lists”, GPU Pro 2, A K Peters, Mar. 11, 2011, VII-2, pp. 409-431. Also, an approach of performing tiling by estimating the number of fragments within a region and adaptively modifying the tile size so that a memory overflow does not occur is disclosed in Yusuke Tokuyoshi et al, “Adaptive Ray-bundle Tracing with Memory Usage Prediction: Efficient Global Illumination in Large Scenes”, Computer Graphics Forum 2013.
However, in the tiling approach recited in “Adaptive Ray-bundle Tracing with Memory Usage Prediction: Efficient Global Illumination in Large Scenes”, for a map that is a target of the tiling, a determination as to whether or not to perform a Quadtree-based tile division is performed considering an affinity with the GPU and convenience for use in referencing in analysis processing. In other words, this is something that is constrained to square images having pixels of a number that is a power of 2 in each direction in a case where it is determined that dividing is performed for a particular size of tile, because the configuration is such that division into 4 tiles is performed by dividing the tile into 2 in a horizontal direction and into 2 in a vertical orientation. In other words, this is not an approach that assumes processing of a rectangle region of any aspect ratio.